# -*- coding: utf-8 -*-
"""
Created on Tue Aug  8 13:03:37 2023

@author: skunk69
"""

import json

chinese_name = u'中学生生活应激评定量表'
english_name = 'Life Stress Scale for Middle School Student'
abbreviation = 'LSSMSS'
category = u'应激及相关行为量表'

outline = u"""心理应激是一个人在觉察到或认识到自己正面对着至关重要而又难以应对的环境要求时，产生的一个倾向于通过各式各样的心理和生理反应而表现出来的心身紧张状态。生活应激是心理应激的主要方面。梁宝勇等（2002）编写的《中学生生活应激评定量表》不仅包括了重大及急性生活事件，也考虑了日常生活中遇到的一些琐事。国外一些研究表明，日常琐事的累积效应对身心健康的影响不亚于重大生活事件。"""

instruction = u"""下面是你在生活中可能会遇到的一些实际情况，究竟是好事还是坏事，可根据个人情况自行判断。这些事件可能对个人有精神上的影响（体验为紧张、压力兴奋或苦恼等），影响的轻重程度是各不相同的，影响的持续时间也不一样。请根据你的实际情况做出选择。"""

with open('LSSMSS.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines:
    key,value = line.strip().split('、',maxsplit=1)
    items[key] = value

scales = [u'学习',u'生活与社交',u'家庭',u'发展',u'生活事件',u'琐事']
L1 = list(range(1,4))+[9,11]+list(range(24,31))
L2 = list(range(4,9))+[10]+list(range(12,24))+list(range(31,40))+[56,57]
L3 = list(range(40,50))
L4 = list(range(50,56))
L5 = [1]+list(range(3,14))+[16,17]+list(range(20,23))+[29,30,32,33,35,36,38,39]+\
    list(range(42,47))+list(range(48,54))+[56,57]
L6 = [2,14,15,18,19]+list(range(23,28))+[28,31,34,37,40,41,47,54,55]

scales_items = [
    L1,# 学习
    L2,# 生活与社交
    L3,# 家庭
    L4,# 发展
    L5,# 生活事件
    L6,# 琐事
    ]
print([len(l) for l in scales_items])
print(sorted(L1+L2+L3+L4))
print(sorted(L5+L6))


title_items = u'生活事件名称'
title_time_rating = u'事件发生时间'
time_rating = [u'未发生',u'一年内',u'长期性']
title_characteristics_rating = u'事件性质'
characteristics_rating = [u'好事',u'中性事',u'坏事']
title_level_influence_rating = u'心理影响程度'
level_influence_rating = [u'无影响',u'轻度',u'中度',u'重度',u'极重']
title_duration_rating = u'心理影响持续时间'
duration_rating = [u'三个月内',u'半年内',u'一年内',u'一年以上']
duration_score_rules = list(range(1,5))
level_influence_score_rules = list(range(0,5))

contents = {
    'instruction':instruction,
    'items':items,
    'title_items':title_items,
    'title_time_rating':title_time_rating,
    'time_rating':time_rating,
    'title_characteristics_rating':title_characteristics_rating,
    'characteristics_rating':characteristics_rating,
    'title_level_influence_rating':title_level_influence_rating,
    'level_influence_rating':level_influence_rating,
    'title_duration_rating':title_duration_rating,
    'duration_rating':duration_rating,
    'duration_score_rules':duration_score_rules,
    'level_influence_score_rules':level_influence_score_rules,        
    'scales':scales,
    'scales_items':scales_items
    }

implementation = u"""中学生生活应激评定量表属于自评量表。"""

reliability = u"""样本分析表明，生活应激各分量表与总量表均有较高的相关性，量表总分的重测信度系数为0.9，P<0.01，且各分量表的重测信度均较高。总量表的Alpha系数为0.86，说明该量表具有较好的内部一致性。"""
validity = u"""效标效度方面，以生活事件检查表为效标，量表总分的相关系数为0.7，P<0.01；与困扰症状量表的相关系数为0.6，P<0.01；与SCL-90总均分的相关系数为0.71，P<0.01。SCL-90与好事、坏事、中性事的相关系数分别为0.32、0.72、0.32，P<0.01。与状态-特质焦虑调查表中状态焦虑分量表的相关系数为0.5，P<0.01。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""评分方法参考了由杨德森等编制的生活事件量表的计分方法。心理影响程度分为5级，无影响=0分、轻度=1分、中度=2分、重度=3分、极重=4分，心理影响持续时间分三月内、半年内、一年内、一年以上共4个等级，分别记1、2、3、4分。某事件刺激量=该事件影响程度分x该事件持续时间分。除了生活应激总分之外，还可以分别统计好事、坏事、中性事分量表分数，以及学习、生活、家庭、发展、生活事件和琐事的分量表分数。分量表分数=该量表项目分数之和。"""

applications = u"""以抽样人群的主观评分为依据，为量表的客观评分法制定了初高中及不同性别的常模。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)